package com.dingding.special.order.confirm.dao;

import java.util.List;

import com.dingding.common.core.base.dao.IBaseDao;
import com.dingding.common.core.base.dto.ResponseEntity;
import com.dingding.common.core.beans.special.UserspecialorderT;
import com.dingding.order.common.dto.distance.ResRealTimeCalculationDTO;
import com.dingding.special.order.confirm.dto.ConfirmArriveNoticeDTO;
import com.dingding.special.order.confirm.dto.ReqConfirmArriveDTO;
import com.dingding.special.order.confirm.dto.ResConfirmArriveDTO;

/**
 * 
 * @ClassName: IConfirmArriveDao 
 * @Description: 确认到达DAO接口 
 * @author YHQ
 * @date 2016年8月21日 下午6:00:12
 * @since V2.4.0
 * 
 */
public interface IConfirmArriveDao extends IBaseDao<UserspecialorderT>{

	/**
	 * 
	 * @Title: getSpecialOrdert 
	 * @Description: 根据用户Id获取专车未完成订单列表 
	 * @param userId 用户Id
	 * @author YHQ 
	 * @return List<Userspecialordert>    返回类型
	 * 
	 */
	public List<UserspecialorderT> getSpecialOrdert(String userId);
	
	/**
	 * 
	 * @Title: getSpecialOrdertInfo 
	 * @Description: 根据订单Id获取订单信息
	 * @param oid 订单Id
	 * @author YHQ 
	 * @since V2.4.0
	 * @return Userspecialordert    返回类型
	 * 
	 */
	public UserspecialorderT getSpecialOrdertInfo(String oid);
	
	
	/**
	 * 
	 * @Title: getNoticeInfo 
	 * @Description: 根据订单Id获取通知的信息 
	 * @param oid 订单Id
	 * @author YHQ 
	 * @since V2.4.0
	 * @return ConfirmArriveNoticeDTO    返回类型
	 * 
	 */
	public ConfirmArriveNoticeDTO getNoticeInfo(String oid);

	
	/**
	 * 
	 * @Title: confirmArriveOperation 
	 * @Description: 专车确认达到操作 
	 * @param response 确认到达响应Bean
	 * @param reqConfirmArriveDTO 确认到达客户端请求Bean
	 * @author YHQ 
	 * @since V2.4.0
	 * @return boolean    返回类型
	 * 
	 */
	boolean confirmArriveOperation(ResponseEntity<ResConfirmArriveDTO> response,
			ReqConfirmArriveDTO reqConfirmArriveDTO,ResRealTimeCalculationDTO resCalculationAmount);
	
	/**
	 * @Description:专车的临时订单迁移到正式订单
	 * @param ordert 临时订单的id
	 * @author fengshuonan
	 * @since 2.4
	 */
	public void OrderTempToFormal(String ordertId);
	
}
